package com.github.sort;

import java.util.Arrays;
import java.util.Comparator;

/**
 * Description:
 *
 * @author zwl
 * @version 1.0
 * @date 2021/8/19 下午3:39
 */
public class ArraySort {

    public static void main(String[] args) {

        ValueType[] vt = new ValueType[3];

        vt[0] = new ValueType(100,1);
        vt[1] = new ValueType(100,0);
        vt[2] = new ValueType(99,1);

        Arrays.sort(vt, new Comparator<ValueType>() {

            // val相同， type=0的排前面,type 相同不变位置
            // 按照 val 从小到大排序
            @Override
            public int compare(ValueType o1, ValueType o2) {
                // val相同， type=0的排前面,type 相同不变位置
                if (o1.val == o2.val){
                    return Integer.compare(o1.type,o2.type);
                }
                // 按照 val 从小到大排序
                return o1.val < o2.val ? -1 : 1;
            }
        });

        Arrays.stream(vt).forEach(o -> {
            System.out.println("val=" + o.val + ", type=" + o.type);
        });

    }

    static class ValueType{
        int val;
        int type;
        public ValueType(int val,int type){
            this.val = val;
            this.type = type;
        }
    }

}
